package com.atguigu.spzx.manager.task;

import cn.hutool.core.date.DateUtil;
import com.atguigu.spzx.manager.mapper.OrderInfoMapper;
import com.atguigu.spzx.manager.mapper.OrderStatisticsMapper;
import com.atguigu.spzx.model.pojo.order.OrderInfo;
import com.atguigu.spzx.model.pojo.order.OrderStatistics;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * @author dyl
 * @version 1.0
 * @description:
 * @date 2025/1/14 20:35
 */
@Component
@Slf4j
public class OrderStatisticsTask {
    @Autowired
    private OrderInfoMapper orderInfoMapper;
    @Autowired
    private OrderStatisticsMapper orderStatisticsMapper;

    // 秒  分 时 日 月 周几
    // 每天两点执行一次
    @Scheduled(cron = "0 0 2 * * ?")
    public void orderTotalAmountStatistics() {
        // 由于每天都要执行，所以这里只需要插入当天的数据
        // 1、先查OrderInfo中的数据（昨日的数据）
        String createTime = DateUtil.offsetDay(new Date(), -1).toString(new SimpleDateFormat("yyyy-MM-dd"));
        // 这里只有一天的数据，所以不用集合，查出来的数据只有一个OrderStatistics
        OrderStatistics yesterdayOrderInfos = orderInfoMapper.selectYesterdayInfo(createTime);
        // 2、将OrderInfo中查到的数据存入OrderStatistics中
        orderStatisticsMapper.insert(yesterdayOrderInfos);
    }
}
